﻿using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Oridea.Data.Fetching {
	/// <summary>
	/// Represents an IFetcher&lt;ReadOnlyCollection&lt;T&gt;gt; 
	/// capable of ordering the data with specified OrderingSequence.
	/// </summary>
	/// <typeparam name="T">Type of an object being ordered.</typeparam>
	public interface IOrderableFetcher<T> : IFetcher<ReadOnlyCollection<T>> {
		/// <summary>
		/// Orders rows from the data source using the specified OrderingSequence.
		/// </summary>
		IPagingFetcher<T> OrderBy(OrderingSequence<T> orderingSequence);
	}
}